

package net.qiqbframework.messaging.correlation;


import net.qiqbframework.messaging.Message;

import java.util.Map;

/**
 * 定义 Message 中的数据的对象，该数据应作为关联数据附加到因处理该消息而生成的消息。
 */
@FunctionalInterface
public interface CorrelationDataProvider {

    /**
     * 提供一个映射，其中包含在处理给定 message消息时要作为关联数据附加到生成的消息的条目。
     * 此方法不应返回 null。此方法引发的任何异常都可能会干扰回滚事务。因此，默认情况下会捕获异常，忽略应已添加的关联数据。
     *
     */
    Map<String, ?> correlationDataFor(Message<?> message);
}
